﻿using System;
using CRM.Models;
using CRM.Services;
using System.Collections.Generic;
using CRM.Enums;

namespace CRM.ViewModels.User
{
    public class GetCompanyList {
        public string Name { get; set; }
        public int RuleId { get; set; }
        public States State { get; set; }
        public int OemId { get; set; }
        public string ValidityStart { get; set; }
        public string ValidityEnd { get; set; }
    }


    public class CompanyUserData {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string TrueName { get; set; }
        public int CompanyId { get; set; }
    }

    public class CompanyListData {
        public int Id { get; set; }
        public string Name { get; set; }
        public int RuleId { get; set; }
        public States State { get; set; }
        public string Validity { get; set; }
        public int OemId { get; set; }
        public virtual DateTime CreatedAt { get; set; }
    }

    public class GetDataId
    {
        public int Id { get; set; }
    }

    public class CompanySubAdd
    {
        public string UserName { get; set; }
        public string TrueName { get; set; }
        public string CompanyName { get; set; }
        public string Password { get; set; }
        public string CheckPassword { get; set; }
        public string Email { get; set; }
        public DateTime Validity { get; set; }
        public Company.IsOpenUsers IsOpenUser { get; set; }
        public Company.IsUnlimitedPointEnum IsUnlimitedPoints { get; set; }
        public int OemId { get; set; }
        public int OpenUserNum { get; set; }
        public int NumberOfPoints { get; set; }
        public int RuleId { get; set; }
        public States State { get; set; }
    }
    public class CompanySubEdit
    {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string TrueName { get; set; }
        public string Email { get; set; }
        public int RuleId { get; set; }
        public States State { get; set; }
    }

    public class CompanyConfigSub {
        public int Id { get; set; }
        public string Name { get; set; }
        public Company.IsOpenUsers IsOpenUser { get; set; }
        public int OpenUserNum { get; set; }
        public DateTime Validity { get; set; }
        public int OemId { get; set; }
        public int NumberOfPoints { get; set; }
    }

    public class SysCompanyConfig
    {
        public string Name { get; set; }
        public Company.IsRepetitionAllowedType IsRepetitionAllowed { get; set; }
        public int AutoWatersDay { get; set; }
        
        public UserSettings Settings { get; set; }
    }
    public class UserCenterPassword
    {
        public string OriginalPassword { get; set; }
        public string Password { get; set; }
        public string CheckPassword { get; set; }
    }


    public class EmployeeSubAdd
    {
        public string UserName { get; set; }
        public string TrueName { get; set; }
        public string Password { get; set; }
        public string CheckPassword { get; set; }
        public string Email { get; set; }
        public int RuleId { get; set; }
        public int GroupId { get; set; }
        public States State { get; set; }
        public DateTime? Validity { get; set; }
    }

    public class EmployeeSubEdit
    {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string TrueName { get; set; }
        public string Email { get; set; }
        public int RuleId { get; set; }
        public int GroupId { get; set; }
        public States State { get; set; }
        public DateTime? Validity { get; set; }
    }
    
    public class GetJuniorList {
        public int CompanyId { get; set; }
        public string Name { get; set; }
        public string ValidityStart { get; set; }
        public string ValidityEnd { get; set; }
    }

    public class JuniorTotalNumData
    {
        public int CompanyId { get; set; }
        public int Total { get; set; }
    }

    public class ReturnJuniorList {
        public object CompanyData { get; set; }
        public Dictionary<int, CompanyUserData> UserList { get; set; }
        public Dictionary<int, JuniorTotalNumData> UserTotal { get; set; }
        public Dictionary<int, RuleTemplateService.ChooseData> RuleTemplates { get; set; }
    }
}
